Appearance
HJ97 记负均正
本节目标:理解“HJ97 记负均正”的核心思路,并能把它用于实际开发或面试表达。 描述 首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。 0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。 数据范围: 1≤n ≤2000 ,输入的整数都满足 ∣val∣≤1000 输入描述: 首先输入一个正整数n, 然后输入n个整数。 输出描述: 输出负数的个数,和所有正整数的平均值。 示例1 输入: 11 1 2 3 4 5 6 7 8 9 0 -1 ==复制== 输出: 1 5.0 ==复制== 示例2 输入: 30 0 0 ==复制== 输出: 0 0.0 ==复制==
while True: try:
读取数字个数(本行未使用,可优化掉)
count = int(input().strip())
读取一行数字,并转换为整数列表
num_list = map(int, input().strip().split())
初始化负数数量和非负数(正数)总和及数量
negative_count = 0 positive_sum = 0 positive_count = 0 # 遍历数字列表 for n in num_list: if n < 0:
如果是负数,负数计数器增加
negative_count += 1 elif n > 0:
如果是正数,累加到正数总和中,并增加正数计数器
positive_sum += n positive_count += 1 # 如果有正数,计算平均值,否则平均值为0.0 avg = positive_sum / positive_count if positive_count > 0 else 0.0 # 输出负数数量和非负数平均值(保留一位小数) print(f"{negative_count} {avg:.1f}") except EOFError:
当读取到文件末尾时退出循环
break
